#!/usr/bin/env bash

zulip_conf_get_boolean() {
    # Get a boolean flag from zulip.conf, using the Python
    # `configparser` library's conventions for what counts as true.
    # Treat absent and invalid values as false.
    value=$(crudini --get /etc/zulip/zulip.conf "$1" "$2" 2>/dev/null)
    case "$(echo "$value" | tr '[:upper:]' '[:lower:]')" in
        1|yes|true|on) return 0 ;;
        *) return 1 ;;
    esac
}

if ! zulip_conf_get_boolean certbot auto_renew; then
    exit 0
fi

deploy_hook="${ZULIP_CERTBOT_DEPLOY_HOOK:-service nginx reload}"

/usr/local/sbin/certbot-auto renew --quiet \
  --webroot --webroot-path=/var/lib/zulip/certbot-webroot/ \
  --deploy-hook "$deploy_hook"
